package top.saodisheng;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

/**
 * Description:
 * 工具类
 * @author 扫地生_saodisheng
 */
public class Utils {
    /**
     * 从指定的Excel表中读取数据，放入到List中作为返回结果
     * @param file
     * @return
     */
    public static List<double[]> readExcel(File file, int dimension){
        // 所有的数据
        List<double[]> allData = new ArrayList<double[]>();
        try {
            // 创建输入流，用于读取Excel
            InputStream is = new FileInputStream(file.getAbsoluteFile());
//        System.out.println(file.getAbsoluteFile());
            // jxl提供的workbook类
            Workbook wb = Workbook.getWorkbook(is);
            // 只有一个sheet,直接处理
            // 创建一个sheet对象
            Sheet sheet = wb.getSheet(0);
            // 得到所有的行数
            int rows = sheet.getRows();
            // 越过第一行，因为是列的名称
            for (int i = 1; i < rows; i++) {
                double[] oneData = new double[dimension];
                // 得到每一行的数据
                Cell[] cells = sheet.getRow(i);
                for (int j = 0; j < cells.length; j++) {
                    oneData[j] = Double.parseDouble(cells[j].getContents());
//                    System.out.print(oneData[j] + " ");
                }
//                System.out.println();
                // 存储每一条数据
                allData.add(oneData);
            }
            is.close();
            wb.close();

        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            return allData;
        }
    }
}
